<?php
namespace app\applet\controller;

use app\BaseController;
use app\common\model\Applet;
use app\common\service\AppletService;
use app\common\service\ApplyService;
use nxcsoft\wechat\Driver;
use think\facade\View;

/**
 * 首页
 */
class Index extends BaseController
{

    public function index()
    {
        return View::fetch();
    }

    public function test()
    {
        $msg='<xml>
    <AppId><![CDATA[第三方平台appid]]></AppId>
    <CreateTime>1535442403</CreateTime>
    <InfoType><![CDATA[notify_third_fasteregister]]></InfoType>
    <appid>wxa3s333333</appid>
    <status>0</status>
    <auth_code>xxxxx第三方授权码</auth_code>
    <msg>OK</msg>
    <info>
    <name><![CDATA[admin]]></name>
    <code><![CDATA[123456]]></code>
    <code_type>1</code_type>
    <legal_persona_wechat><![CDATA[啊啊]]></legal_persona_wechat>
    <legal_persona_name><![CDATA[啊啊]]></legal_persona_name>
    <component_phone><![CDATA[第三方联系电话]]></component_phone>
    </info>
</xml>';
        $array=xml_to_arr($msg);
        $result=$this->fasteregister($array);//验证状态
        halt($result);
    }
    /**
     * @param array $data
     * @return bool
     * @throws \think\db\exception\DataNotFoundException
     * @throws \think\db\exception\DbException
     * @throws \think\db\exception\ModelNotFoundException
     * 快速注册小程序状态验证
     */
    public function fasteregister(array $data)
    {
        $applet = Applet::getApplet([

            'id' => 10004,

            'status' => 1

        ]);
        halt($applet);
        //第一步、获取申请者资料
        $applyService = new ApplyService();
        $apply = $applyService->getTaskInfo($data);

        //如果查询到了申请记录
        if ($apply) {
            //判断微信端审核状态
            $applyData=[
                'id' => $apply['id']    //小程序信息更新
            ];
            if ($data['status'] == 0) {

                $app = $apply;//得到授权应用的帐号基本信息
                $api_domain = '';
                $signature = '';
                //添加服务器域名
                //更新小程序信息
                $saveData = [
                    'user_name' => $app['user_name'],                    //原始ID
                    'principal_name' => $app['principal_name'],            //主体名称
//                    'app_id' => $auth['authorizer_appid'],                //授权方APPid
                    'signature' => $signature,    //账号介绍
                    'api_domain' => $api_domain,//服务器域名
//                    'access_token' => $auth['authorizer_access_token'],    //令牌
                    'expires_in' => time() + 7000,                        //令牌过期时间
//                    'authorizer_refresh_token' => $auth['authorizer_refresh_token'],    //刷新令牌
                    'status' => 1,    //是否授权
                    'source' => 2, //注册来源
                    'id' => $apply['applet_id']    //小程序信息更新
                ];
                $appletService = new  AppletService();
//                $appletService->upInfo($saveData);
                $title = '注册微信小程序';
                $msg = '注册成功';
                $applyData['apply_status']=30;
            } else {
                //审核失败 (驳回操作)
                $status = [
                    100001 => '已下发的模板消息法人并未确认且已超时（24h），未进行身份证校验',
                    100002 => '已下发的模板消息法人并未确认且已超时（24h），未进行人脸识别校验',
                    100003 => '已下发的模板消息法人并未确认且已超时（24h）',
                    101 => '工商数据返回：“企业已注销”',
                    102 => '工商数据返回：“企业不存在或企业信息未更新”',
                    103 => '工商数据返回：“企业法定代表人姓名不一致”',
                    104 => '工商数据返回：“企业法定代表人身份证号码不一致”',
                    105 => '法定代表人身份证号码，工商数据未更新，请 5-15 个工作日之后尝试',
                    1000 => '工商数据返回：“企业信息或法定代表人信息不一致”',
                    1001 => '主体创建小程序数量达到上限',
                    1002 => '主体违规命中黑名单',
                    1003 => '管理员绑定账号数量达到上限',
                    1004 => '管理员违规命中黑名单',
                    1005 => '管理员手机绑定账号数量达到上限',
                    1006 => '管理员手机号违规命中黑名单',
                    1007 => '管理员身份证创建账号数量达到上限',
                    1008 => '管理员身份证违规命中黑名单'
                ];
                if ($data['status'] == -1) {
                    $reject = '企业与法人姓名不一致';
                } else {
                    if (isset($status[$data['status']])) {
                        $reject = $status[$data['status']];
                    } else {
                        $reject = '未知原因';
                    }
                }
                $applyData['apply_status']=30;
                $applyData['reject']=$reject;
                $applyData['apply_status']=40;
                $title = '注册小程序 - 被驳回';
                $msg = '注册失败';
            }
            halt($applyData);

            $applyService->upInfo($applyData);
        }
        //发送微信通知
//        sand_examine_msg($apply['apply_id'], $title, $msg, $apply['user_id']);
        return false;
    }
}
